package com.example.webbrowser.Utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 正则表达式的匹配和构建
 */
public class RegularUtils {

    /**
     * 传入一个url，判断是否是网址类型
     * @param url
     * @return  如果是网址则返回true，否则返回false
     */
    public static boolean regularMatch(String url) {

        String regex = "((https?|ftp|file)://)?(w{0,3}\\.)?[A-Za-z0-9]+\\.(\\S)+";

        //无视大小写
        Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);

        Matcher matcher = p.matcher(url);

        if(matcher.matches()) {
            return true;
        }
        return false;
    }

    /**
     * 构造为标准的URL
     * @param url
     * @return
     */
    public static String regularGenerate(String url) {

        //正确的url，直接返回
        if(url.startsWith("http") || url.startsWith("ftp") || url.startsWith("file")) {
            return url;
        }

        //至少是三级域名
        if(url.matches("[A-Za-z]+\\.[A-Za-z0-9]+\\.(\\S)+")) {
            return "https://" + url;
        } else {
            //只输入了二级域名
            return "https://www." + url;
        }

    }

}
